package com.ruoyi.asset.park.service;

import com.ruoyi.asset.park.domain.bo.ParkMaintenanceOverviewBo;
import com.ruoyi.asset.park.domain.bo.ParkMaintenanceSearchBo;
import com.ruoyi.asset.park.domain.bo.StatisticianParkByRegion;
import com.ruoyi.asset.park.domain.vo.ParkCommunityCountVo;
import com.ruoyi.asset.park.domain.vo.ParkCommunityMapVo;
import com.ruoyi.asset.park.domain.vo.ParkMaintenanceVo;
import com.ruoyi.asset.park.domain.vo.ParkWorkStatisticsVo;
import com.ruoyi.asset.sorting.domain.vo.SortingCommunityCountVo;
import com.ruoyi.asset.sorting.domain.vo.SortingCommunityMapVo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 公园管养管理范围Service接口
 *
 * @author lq
 * @date 2023-11-30
 */
public interface IParkMaintenanceService {

	/**
	 * 数据导入
	 *
	 * @return 返回导入失败数据的行号和错误信息
	 */
	List<String> importExcel(String excelUrl);

	/**
	 * 删除管养范围
	 */
	int deleteMaintenanceScope(Set<Long> idsSet);

	/**
	 * 查询管养范围
	 */
	TableDataInfo<ParkMaintenanceVo> queryMaintenanceScope(ParkMaintenanceSearchBo searchBo, PageQuery pageQuery);

	/**
	 * 导出管养范围
	 */
	List<ParkMaintenanceVo> queryMaintenanceScope(ParkMaintenanceSearchBo maintenanceScopeSearchBo);

	/**
	 * 查询公园管养概况
	 */
	ParkMaintenanceOverviewBo getParkMaintenanceOverview();

	/**
	 * 统计公园管养
	 */
	List<StatisticianParkByRegion> statForParkByRegion();

	Map getParkCommunityCount();

    /**
     * 智慧大屏公园管养左侧
     * @param date 指定日期
     * @return
     */
    List<ParkCommunityCountVo> getParkCountByCommunity(String date);

    ParkCommunityMapVo getCommunityByDate(String community, String date);

    ParkWorkStatisticsVo getParkWorkByDate(String date);

    ParkWorkStatisticsVo getParkWorkByDateAndCommunity(String date, String community);

    ParkCommunityCountVo getParkByDateAndAndCommunity(String date, String community);
}
